{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import fetch_openml\n",
    "fashion_mnist = fetch_openml(data_id=40996)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000, 784)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fashion_mnist['data'].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\"**Author**: Han Xiao, Kashif Rasul, Roland Vollgraf  \\n**Source**: [Zalando Research](https://github.com/zalandoresearch/fashion-mnist)  \\n**Please cite**: Han Xiao and Kashif Rasul and Roland Vollgraf, Fashion-MNIST: a Novel Image Dataset for Benchmarking Machine Learning Algorithms, arXiv, cs.LG/1708.07747  \\n\\nFashion-MNIST is a dataset of Zalando's article images, consisting of a training set of 60,000 examples and a test set of 10,000 examples. Each example is a 28x28 grayscale image, associated with a label from 10 classes. Fashion-MNIST is intended to serve as a direct drop-in replacement for the original MNIST dataset for benchmarking machine learning algorithms. It shares the same image size and structure of training and testing splits. \\n\\nRaw data available at: https://github.com/zalandoresearch/fashion-mnist\\n\\n### Target classes\\nEach training and test example is assigned to one of the following labels:\\nLabel  Description  \\n0  T-shirt/top  \\n1  Trouser  \\n2  Pullover  \\n3  Dress  \\n4  Coat  \\n5  Sandal  \\n6  Shirt  \\n7  Sneaker  \\n8  Bag  \\n9  Ankle boot\\n\\nDownloaded from openml.org.\""
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fashion_mnist['DESCR']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function rsplit:\n",
      "\n",
      "rsplit(...) method of builtins.str instance\n",
      "    S.rsplit(sep=None, maxsplit=-1) -> list of strings\n",
      "    \n",
      "    Return a list of the words in S, using sep as the\n",
      "    delimiter string, starting at the end of the string and\n",
      "    working to the front.  If maxsplit is given, at most maxsplit\n",
      "    splits are done. If sep is not specified, any whitespace string\n",
      "    is a separator.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(''.rsplit)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0: 'T-shirt/top  ',\n",
       " 1: 'Trouser  ',\n",
       " 2: 'Pullover  ',\n",
       " 3: 'Dress  ',\n",
       " 4: 'Coat  ',\n",
       " 5: 'Sandal  ',\n",
       " 6: 'Shirt  ',\n",
       " 7: 'Sneaker  ',\n",
       " 8: 'Bag  ',\n",
       " 9: 'Ankle boot'}"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c = '0  T-shirt/top  \\n1  Trouser  \\n2  Pullover  \\n3  Dress  \\n4  Coat  \\n5  Sandal  \\n6  Shirt  \\n7  Sneaker  \\n8  Bag  \\n9  Ankle boot'\n",
    "\n",
    "fashion_label_translation = {\n",
    "    int(k): v for k, v in [\n",
    "        item.split(maxsplit=1) for item in c.split('\\n')\n",
    "    ]\n",
    "}\n",
    "\n",
    "fashion_label_translation\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "fashion_label_high_lebel_translation = {\n",
    "    0: 'Apparel',\n",
    "    1: 'Apparel',\n",
    "    2: 'Apparel',\n",
    "    3: 'Apparel',\n",
    "    4: 'Apparel',\n",
    "    5: 'Footwear',\n",
    "    6: 'Apparel',\n",
    "    7: 'Footwear',\n",
    "    8: 'Accessory',\n",
    "    9: 'Footwear',\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def translate_label(y, translation=fashion_label_translation):\n",
    "    return pd.Series(y).apply(\n",
    "        lambda y: translation[int(y)]\n",
    "    ).values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Display Fashion Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(784,)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fashion_mnist['data'][0].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib.colors import ListedColormap\n",
    "\n",
    "def display_fashion(img, target, ax):\n",
    "    \n",
    "    if len(img.shape) < 2:\n",
    "        w = np.sqrt(img.shape[0]).astype(int)\n",
    "        img = img.reshape((w, w))\n",
    "    \n",
    "    ax.imshow(img, cmap='Greys')\n",
    "    ax.set_title(f'{target}')\n",
    "    ax.grid(False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "fashion_mnist_sample = {}\n",
    "\n",
    "fashion_mnist_sample['data'], _, fashion_mnist_sample['target'], _ = train_test_split(\n",
    "    fashion_mnist['data'], fashion_mnist['target'], train_size=10000\n",
    ")\n",
    "\n",
    "x, y = fashion_mnist_sample['data'], fashion_mnist_sample['target']\n",
    "\n",
    "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import MinMaxScaler\n",
    "\n",
    "scaler = MinMaxScaler()\n",
    "\n",
    "x_train = scaler.fit_transform(x_train)\n",
    "x_test = scaler.transform(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# translation = fashion_label_high_lebel_translation\n",
    "translation = fashion_label_translation\n",
    "\n",
    "y_train_translated = translate_label(y_train, translation=translation)\n",
    "y_test_translated = translate_label(y_test, translation=translation)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import LabelEncoder\n",
    "\n",
    "le = LabelEncoder()\n",
    "\n",
    "y_train_encoded = le.fit_transform(y_train_translated)\n",
    "y_test_encoded = le.transform(y_test_translated)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:9: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  if __name__ == '__main__':\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x864 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(1, 10, figsize=(16, 12))\n",
    "\n",
    "import random \n",
    "\n",
    "for i in range(10):\n",
    "    rand = random.choice(range(x_train.shape[0]))\n",
    "    display_fashion(x_train[rand], y_train_translated[rand], axs[i])\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Kernels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABAIAAAH0CAYAAACn048WAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAZcElEQVR4nO3dfYzld3Xf8c/BawMJdElbFChGdaRQFAcVQ1VCoGoSu0jGUEiiSNgFk0ooVQskENEgrKZpUAt9IE3IwyZpSZAhEB4irJYSDKLGqUtrTGrzEGzj2FAaDClOBSwYAo7h9I97Fw/rWe+s9z5457xe0sh7Z+7eOV7ZO2fe872/W90dAAAAYIb7bXsAAAAAYHOEAAAAABhECAAAAIBBhAAAAAAYRAgAAACAQYQAAAAAGEQIgFNAVf18Vd1ygr/nB6uqq+rMFc+ylscFAGa6N3sOcHKEANiQqvrOqvrVqvpkVd1RVX9WVW+rqnP28Nt/IckTT/BT/s8kD0/ymRMeFgA4pVXVX6mqf1dVN1XVV6vqtqq6qqqeW1UHtj0fsF3+EoANqKpHZvGN+W1J/kmS65M8LMlPJ3l/Vf1wd79rl993vyTV3bcnuf1EPmd335Hk/57s7ADAqWW5d7wvyZ1Jfi7JB5P8RZInJfmnST6S5ENbGxDYOicCYDMOJTk9yQ919+Xd/Sfd/YHuvijJe5NcWlUPPHI0rqqeVVUfS3JHkr+x25G5qnpxVd1aVV+pqndX1cU7j+wffYR/x+2nLH8i8JWquqGqnnrU476iqm5cfvxTVfWbVXVwE39IAMBK/HqS+yd5fHe/sbtv6O6bu/t1Sf5Wkpur6vSq+jdV9enlScUbquof7HyQ5d7w/Kr6nar60nLvuGTHx19RVTcd/cmr6jeq6n07bl9QVddW1deWJxN+vaq+fbfBq+pRy8/7pKPe/33L9z9qeftBVfXLy/m/UlUfrKofPZk/NJhECIA1q6rvSPK0JL/W3V/c5S7/Osl3JnnK8vZfS/L8JD+e5Owkt+7ymD+axdMFXpXksUnelOTf7nGkX0jyyuXvuybJW5YzHvHnSf7R8nP/wyQ/mORX9vjYAMAWVdVfTnJBFnvH4aM/3t1/0d1fzmIX+IkkL07ymCRvSPKGqjrvqN/yL5JcleScLHaWV+64z+uy+IHF9+34/PdP8qwkr1/e/ptJ3r58jMdmsd88Pclv7jZ/d9+c5OokFx/1oR9PcnV331xVleS/LB/vWcv5fyPJm3eZH9iFEADr96gs/l+7/hgfP/L+Ry//+YAkF3f3Nd39x939pV1+z0uSvKm7f3lZ+C/N8gvuHry8u9+1/EL7siQPTvKEIx/s7n/V3f+9uz/Z3VckuSTJhcunKQAA923fncXeccOx7lBV35bkp5L88+7+veW+8cok/znJPzvq7m/p7td098e7+1CSjyX5e0nS3X+cxQ8Vnrvj/n8/yQOTvHV5+2eSXNfdP93dH+vuy5P8ZJJnV9VfP8aIr0/yrKo6YznvGVl8w/+65cd/IMn3J3lmd7+vuz/R3f8xi5jxk/f4pwMkEQLgvuiz3f0nx7nP2Unef9T7rt7j43/zOYHd/dkkX8/iREKSxWmD5VMHPlNVtyd5Y5IzsrimAQBw31Z7uM93Z/G1/aqj3v/fknzvUe87+loCn8mOvSGLb86fVVWnL28/N8nbu/sLy9vfe4zPU1nsM7t5S5Jvy+LkQJb//Pbl+5Pkby/n/3RV3X7kLclzsvgBDHAcQgCs3y1JOotja7s58gX3yHPsvrzHx+17Oc8du7zvfsni+XdJfi+LL9g/kuTxSf7x8j5n3MvPBwBszs1JvpFjf5N9oo7eGzrf+j3Em7M4Xfi0qnpokvNz10/u75Xu/nwWR/+PnDQ4Oi7cL8nhLJ6usPPt7CRPDXBcQgCsWXd/Lsk7k7ywqv7SLne5JMlnk7znBB72hiyOxO10oi8vuJu/k+T/dffPHnlqQpIzV/C4AMAGLPeOy7PYO+52sd/lT+4/nuRrSf7uUR/+gSQfPcHPd+Sb9ouTXJTkc0neveMu1x/j83SO/bTJZBETLqiqR2dxzYOdT4H8X0kekuQB3X3LUW/HO1UJxMsHwqa8IIuXD3xvVf1svvXlA89N8sPd/eeLa9/syb/P4iJ/H8jii/2Tclc1v7cnBZLFqYSHVtXzklyZRRh4/kk8HgCwec9P8j+SXFtVP5fF8f47svihwc9kceG9X0nyL6vqz5J8OMmPJXlm7rp48Yl4fRYnCr8nyRu7++s7PvaqJNdV1S8l+Q9Jzkryq8v73dM37e9K8vksThx8fnn7iPcm+a9JLquql2bxcojfkcU+9NXufs29+HeAUZwIgA3o7v+Txcv1XJPFF8GPZ/EN/P2TfH93v+sefvtuj3dZkpdmcbG/P0ry7CQvX374qycx5zuSvCKLKwn/UZILs1gYAIBTxPIb7Mcn+U9Jfj7JdVn8QOInsvjG/KNZXBTwNUlevbz9nCTPWV4o+ERdnsVR/e/JURcv7u6PJHlGFqcCPpzkd5L8fu566uGx/h3uTPK7WRz5/93l7SMf6+VjXpbkl7K4gOHvZ/EqTR+/F/PDOLX4/wg41S2L/09191/d9iwAAMB9l6cGwClo+fy+l2Rx7YEvJ/mhLH5yf2ibcwEAAPd9TgTAKaiqDiR5RxZPN3hwkv+dxVG8V+08OgcAAHA0IQAAAAAGcbFAAAAAGOSkrxFw+PBhRwoA4B4cPHhwz68NyomziwDAse22hzgRAAAAAIMIAQAAADDISl8+8ODBg6t8OAA4ZR0+fHjbI4xkFwGA4+8hTgQAAADAIEIAAAAADCIEAAAAwCBCAAAAAAwiBAAAAMAgQgAAAAAMIgQAAADAIEIAAAAADCIEAAAAwCBCAAAAAAwiBAAAAMAgQgAAAAAMIgQAAADAIEIAAAAADCIEAAAAwCBCAAAAAAwiBAAAAMAgQgAAAAAMIgQAAADAIEIAAAAADCIEAAAAwCBCAAAAAAwiBAAAAMAgQgAAAAAMIgQAAADAIEIAAAAADCIEAAAAwCBCAAAAAAwiBAAAAMAgQgAAAAAMIgQAAADAIEIAAAAADCIEAAAAwCBCAAAAAAwiBAAAAMAgQgAAAAAMIgQAAADAIEIAAAAADCIEAAAAwCB7CgFVdX5V3VRVt1TVy9Y9FADATnYRAFid44aAqjotyaEkT01ydpKLqursdQ8GAJDYRQBg1fZyIuAJSW7p7k909x1J3pzkmesdCwDgm+wiALBCewkBj0jyqR23b12+DwBgE+wiALBCLhYIAAAAg+wlBHw6ySN33D5z+T4AgE2wiwDACu0lBPxhkkdV1XdV1RlJLkzy9vWOBQDwTXYRAFihA8e7Q3ffWVUvTPLuJKcleW13X7/2yQAAYhcBgFU7bghIku5+Z5J3rnkWAIBd2UUAYHVcLBAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABjmw7QEAADh13HTTTdseYYwrrrhi2yPAWpx33nnbHmHfe9jDHnaPH3ciAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYJDjhoCqem1V3VZVH93EQAAAO9lFAGC19nIi4NIk5695DgCAY7k0dhEAWJnjhoDuvirJ5zYwCwDA3dhFAGC1XCMAAAAABhECAAAAYBAhAAAAAAYRAgAAAGCQvbx84JuSXJ3k0VV1a1U9b/1jAQAs2EUAYLUOHO8O3X3RJgYBANiNXQQAVstTAwAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgkAPbHgDuq6pq2yPAWnT3tkcATmFXXHHFtkcY4wUveMG2R4C1OHTo0LZH2Pee/exn3+PHnQgAAACAQYQAAAAAGEQIAAAAgEGEAAAAABhECAAAAIBBhAAAAAAYRAgAAACAQYQAAAAAGEQIAAAAgEGEAAAAABhECAAAAIBBhAAAAAAYRAgAAACAQYQAAAAAGEQIAAAAgEGEAAAAABhECAAAAIBBhAAAAAAYRAgAAACAQYQAAAAAGEQIAAAAgEGEAAAAABhECAAAAIBBhAAAAAAYRAgAAACAQYQAAAAAGEQIAAAAgEGEAAAAABhECAAAAIBBhAAAAAAYRAgAAACAQYQAAAAAGEQIAAAAgEGEAAAAABhECAAAAIBBhAAAAAAYRAgAAACAQYQAAAAAGEQIAAAAgEGEAAAAABhECAAAAIBBhAAAAAAY5LghoKoeWVVXVtUNVXV9Vb1oE4MBACR2EQBYtQN7uM+dSV7S3ddV1YOTXFtV7+nuG9Y8GwBAYhcBgJU67omA7v7T7r5u+esvJbkxySPWPRgAQGIXAYBVO6FrBFTVWUkel+SadQwDAHBP7CIAcPL2HAKq6kFJ3pbkxd39xfWNBABwd3YRAFiNPYWAqjo9iy+8b+zuy9Y7EgDAt7KLAMDq7OVVAyrJbye5sbt/cf0jAQDcxS4CAKu1lxMBT05ycZJzq+pDy7cL1jwXAMARdhEAWKHjvnxgd78vSW1gFgCAu7GLAMBqndCrBgAAAACnNiEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAY5bgioqgdU1Qeq6sNVdX1VvXwTgwEAJHYRAFi1A3u4z9eSnNvdt1fV6UneV1WXd/f71zwbAEBiFwGAlTpuCOjuTnL78ubpy7de51AAAEfYRQBgtfZ0jYCqOq2qPpTktiTv6e5r1jsWAMBd7CIAsDp7CgHd/fXuPifJmUmeUFWPWe9YAAB3sYsAwOqc0KsGdPcXklyZ5Pz1jAMAcGx2EQA4eXt51YCHVtVDlr9+YJKnJPnYugcDAEjsIgCwant51YCHJ3ldVZ2WRTh4a3e/Y71jAQB8k10EAFZoL68a8JEkj9vALAAAd2MXAYDVOqFrBAAAAACnNiEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAYRAgAAAGAQIQAAAAAGEQIAAABgECEAAAAABhECAAAAYBAhAAAAAAY5sO0B4L6qu7c9AgDc55x33nnbHmGMQ4cObXsEWAt/j2yfEwEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADDInkNAVZ1WVR+sqnescyAAgKPZQwBgdU7kRMCLkty4rkEAAO6BPQQAVmRPIaCqzkzytCS/td5xAAC+lT0EAFZrrycCXp3kpUm+scZZAAB2Yw8BgBU6bgioqqcnua27r93APAAA32QPAYDV28uJgCcneUZVfTLJm5OcW1VvWOtUAAAL9hAAWLHjhoDuvqS7z+zus5JcmOS93f2ctU8GAIxnDwGA1TuRVw0AAAAATnEHTuTO3f0HSf5gLZMAANwDewgArIYTAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwiBAAAAAAgwgBAAAAMIgQAAAAAIMIAQAAADCIEAAAAACDCAEAAAAwSHX3ST3A4cOHT+4BAGCfO3jwYG17hv3MLgIAx7bbHuJEAAAAAAwiBAAAAMAgJ/3UAAAAAODU4UQAAAAADDIyBFTV+VV1U1XdUlUv2/Y8+1lVvbaqbquqj257lv2sqh5ZVVdW1Q1VdX1VvWjbM+1nVfWAqvpAVX14+ef98m3PtJ9V1WlV9cGqese2Z4FVsYtshj1kc+wim2MP2bz9uIuMCwFVdVqSQ0memuTsJBdV1dnbnWpfuzTJ+dseYoA7k7yku89O8sQkL/Df9Vp9Lcm53f3YJOckOb+qnrjlmfazFyW5cdtDwKrYRTbq0thDNsUusjn2kM3bd7vIuBCQ5AlJbunuT3T3HUnenOSZW55p3+ruq5J8bttz7Hfd/afdfd3y11/K4i+qR2x3qv2rF25f3jx9+eaCK2tQVWcmeVqS39r2LLBCdpENsYdsjl1kc+whm7Vfd5GJIeARST614/at8ZcU+0hVnZXkcUmu2e4k+9vyiNiHktyW5D3d7c97PV6d5KVJvrHtQWCF7CLsa3aR9bOHbNS+3EUmhgDYt6rqQUneluTF3f3Fbc+zn3X317v7nCRnJnlCVT1m2zPtN1X19CS3dfe1254FgL2xi2yGPWQz9vMuMjEEfDrJI3fcPnP5PjilVdXpWXzhfWN3X7bteabo7i8kuTKeg7oOT07yjKr6ZBZHp8+tqjdsdyRYCbsI+5JdZPPsIWu3b3eRiSHgD5M8qqq+q6rOSHJhkrdveSY4KVVVSX47yY3d/Yvbnme/q6qHVtVDlr9+YJKnJPnYdqfaf7r7ku4+s7vPyuLv6vd293O2PBasgl2Efccusjn2kM3Zz7vIuBDQ3XcmeWGSd2dxEZO3dvf1251q/6qqNyW5Osmjq+rWqnretmfap56c5OIsKuWHlm8XbHuofezhSa6sqo9ksdC/p7v3zcvJAOtlF9kce8hG2UU2xx7CSatuF5gEAACAKcadCAAAAIDJhAAAAAAYRAgAAACAQYQAAAAAGEQIAAAAgEGEAAAAABhECAAAAIBBhAAAAAAY5P8DXfz0AUJLuqwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1152x648 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy import ndimage\n",
    "\n",
    "x_example = [\n",
    "    [0,0,0,0,0], [0,0,0,0,0], [0,0,1,1,0], [0,0,1,1,0], [0,0,0,0,0],\n",
    "]\n",
    "x_example = np.array(x_example)\n",
    "\n",
    "fig, axs = plt.subplots(1, 2, figsize=(16, 9))\n",
    "\n",
    "axs[0].imshow(x_example.reshape((5, 5)), cmap='Greys')\n",
    "axs[0].set_title('Original')\n",
    "axs[0].set_yticks(range(5))\n",
    "axs[0].set_xticks(range(5))\n",
    "axs[0].grid(False)\n",
    "\n",
    "kernel = [[1,1,1],[1,1,1],[1,1,1]] \n",
    "x_example_convolve =  ndimage.convolve(x_example, kernel, mode='constant', cval=0)\n",
    "x_example_convolve = x_example_convolve / 9\n",
    "\n",
    "axs[1].imshow(x_example_convolve.reshape((5, 5)), cmap='Greys')\n",
    "axs[1].set_title('Convolve')\n",
    "axs[1].set_yticks(range(5))\n",
    "axs[1].set_xticks(range(5))\n",
    "axs[1].grid(False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0],\n",
       "       [0, 0, 1, 1, 0],\n",
       "       [0, 0, 1, 1, 0],\n",
       "       [0, 0, 0, 0, 0]])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.  , 0.  , 0.  , 0.  , 0.  ],\n",
       "       [0.  , 0.11, 0.22, 0.22, 0.11],\n",
       "       [0.  , 0.22, 0.44, 0.44, 0.22],\n",
       "       [0.  , 0.22, 0.44, 0.44, 0.22],\n",
       "       [0.  , 0.11, 0.22, 0.22, 0.11]])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_example_convolve.round(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create Convolve Function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy import ndimage\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "\n",
    "def convolve(x, kernel=[[0,-1,0], [-1,5,-1], [0,-1,0]]):\n",
    "    w = int(np.sqrt(x.shape[1]))\n",
    "    x = ndimage.convolve(x.reshape((x.shape[0], w, w)), [kernel], mode='constant', cval=0.0) \n",
    "    x = x.reshape(x.shape[0], x.shape[1]*x.shape[2]) \n",
    "    x = MinMaxScaler().fit_transform(x)\n",
    "\n",
    "    return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "kernels = [\n",
    "    ('Sharpen', [[0,-1,0], [-1,5,-1], [0,-1,0]]),\n",
    "    ('V-Edge', [[-1,0,1], [-2,0,2], [-1,0,1]]),\n",
    "    ('H-Edge', [[-1,-2,-1], [0,0,0], [1,2,1]]),\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([-1, -1, 0], [-1, 0, 1], [0, 1, 1])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[-1, -1, 0], [-1,0,1], [0,1,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "kernels = [\n",
    "    ['Sharpen', [[0,-1,0], [-1,5,-1], [0,-1,0]], None, None],\n",
    "    ['V-Edge', [[-1,0,1], [-2,0,2], [-1,0,1]], None, None],\n",
    "    ['H-Edge', [[-1,-2,-1], [0,0,0], [1,2,1]], None, None],\n",
    "]\n",
    "\n",
    "for i, kernel in enumerate(kernels):\n",
    "    kernels[i][-2] = convolve(x_train, kernel[1])\n",
    "    kernels[i][-1] = convolve(x_test, kernel[1]) \n",
    "    \n",
    "    \n",
    "x_train_conv = convolve(x_train, kernels[-1][1])\n",
    "x_test_conv = convolve(x_test, kernels[-1][1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:12: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  if sys.path[0] == '':\n"
     ]
    },
    {
     "data": {
      "image/png": "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gcn7Y9ogd0t66KGHGuqhQ4dGzc9Gaygt2hz/WjmOprXg2EvNtsM+jWlP1XnuoEGDouZ8ned99dVXu3jHJjeuuuqqqM8888yop02bFvXWW28dda4pBoSpN+zX+R2TO3WwXnMcYR/P46X6tASmLvB1fsdkqg+vx+9IPY0dBMYYY4wxxhhjjPEDAmOMMcYYY4wxxmScYvCDH/wg6smTJ0e97rrrRk1bEy3/tHnQOvKrX/0qatqgjjrqqLpr/+c//4maK1NztUla3JdccsmouSI/7+/oo4+O+vLLL9fcCNNAFl100ahZfrSDtrd693//+9+oaV/vL9B21FE6uur5mDFjov7JT37S8Bham9mmpHorVcqGxTSh4cOHNzxX6r47aqvuj6u+N1MGhxxySN3PTCtgf8X+lDuqfOELX4ia9tGNNtooatoI77777qgZd9rBTz311KiPOeaYhvedK83sFsF+qNk2m4of38+xhilz/Z2XXnopaq6y/txzz0V9/fXXR/3kk09Gzd0KGDtapjlWtFeufD93TTjrrLOiPuyww6LmjjtMWeQ848EHH4x6m222SV7bmJ6C9T/VXzEVlP0exxCpvu+r/q4Ntj3TWvz617+Omt9ZaLvfbLPNor7sssuibrW0X+44xzbCec0rr7wSNb+ncKzge9988826a/B3HNuYbsC2l9pxpDfT1fvfTNoYY4wxxhhjjDEdxg8IjDHGGGOMMcYYk2+KwT//+c+oBwwYEDVXdqTFiSuscpVHph488sgjUR944IFR//vf/6679jLLLNPw2rRR0T5CWyTh8dVrzI3cfvvtUS+++OJRT506NWpad2i9qTJixIioufo3VwFtZXraJk+704wZM6Lm6t+EdidaqtqDK4aPHj06aqYYVFd6NY1pJrWCq75L0uOPPx41+yKurM7Vq9mfPvDAA1Ffe+21UXOlftreWCeWWGKJqHfcccc53neuNFPmTCNjeXT0PFJ9ukfqPf19xfvUOE6Ynsb0F+5YxF0IWMenTJkSNVPeqnDsWWSRRaJm6s0tt9wS9d577x01LaDUL7zwQvJ6/QGOER21wTKFhLtUSPX9FVdE//73vx8160RXeOaZZ6I+9thjoz700EOjbuX0EJYl+2ymwtBKzTbI90r1q72zXXBu0excweTB+PHjo/7rX/8aNXdpOe2006Ku1olW5bHHHouabYHj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\n",
      "text/plain": [
       "<Figure size 1152x720 with 40 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(4, 10, figsize=(16, 10))\n",
    "\n",
    "import random \n",
    "\n",
    "for i in range(10):\n",
    "    rand = random.choice(range(x_train.shape[0]))\n",
    "    display_fashion(x_train[rand], y_train_translated[rand], axs[0][i])\n",
    "    display_fashion(kernels[0][2][rand], kernels[0][0], axs[1][i])\n",
    "    display_fashion(kernels[1][2][rand], kernels[1][0], axs[2][i])\n",
    "    display_fashion(kernels[2][2][rand], kernels[2][0], axs[3][i])\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Add Max Pooling Function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy import ndimage\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from skimage.measure import block_reduce\n",
    "\n",
    "def maxpool(x, size=(2,2)):\n",
    "    w = int(np.sqrt(x.shape[1]))\n",
    "    # x = ndimage.maximum_filter(x.reshape((x.shape[0], w, w)), size=(x.shape[0], size[0], size[1])) \n",
    "    x = np.array([block_reduce(img.reshape((w, w)), block_size=(size[0], size[1]), func=np.max) for img in x])\n",
    "    x = x.reshape(x.shape[0], x.shape[1]*x.shape[2]) \n",
    "    x = MinMaxScaler().fit_transform(x)\n",
    "\n",
    "    return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "28.0 6.0\n"
     ]
    }
   ],
   "source": [
    "x_train_maxpool = maxpool(x_train_conv, size=(5,5))\n",
    "x_test_maxpool = maxpool(x_test_conv, size=(5,5)) \n",
    "\n",
    "print(np.sqrt(x_test_conv.shape[1]), np.sqrt(x_test_maxpool.shape[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:10: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  # Remove the CWD from sys.path while we load stuff.\n"
     ]
    },
    {
     "data": {
      "image/png": "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pSAQQgghhBBCCCGEJgiEEEIIIYQQQgiR4xSDESNGlHyfJcksI2RYphFbqZElu3xOIC6RYikISzhYUhyTYY0cOTLYSjHIRloyzZKs1157LdgsRa20RK2h0velmV69egX7xBNPDPaBBx4Y7Niq4Fy2LLXilVrvvffeYJ911lnBLkgqY1K7cjFr1qxgs/SbpWUTJ04MNsuKOSWB5dOjRo0KNq+Uy3Wc25KsK9NzShVLEg855JBgs+yN20deJTkmh958882DPWnSpEz3VKvE5KNMXXJc9jenzHH7xsfw+yyv510qNthgg2DzCskcA88//3ywWT56/vnnR++1MZhZNIWI61rfvn2D/emnnwZ77Nixwea479SpU7C5PDg9h/twlkz37t072CytBYr79GOOOabktbmd4XEGlzOflyWgJ5xwQrB33333YHNdGTJkSLAbukNDLROrJ2k4rWv27NnBvvPOO4P917/+Ndgso4/FJMcX9zXcjl944YXB5pXK8wSvXs8Sck5pYjguuP3mdDRuh9KSaW7nf/nLXwabY5uvzX0QXyM9/s47XI9idSpWn/k3C7fHPB7guOey5HNuvfXW0fvj9mrDDTcMNqegvPvuu8HmsRanivB9//vf/w42jwHatGkT7FpLK2CypIcccMABwea2/7TTTgs2p2ik2zHemY/7Kv5Nwe0VxxuPBXfbbbdg/+1vfwv29ddfH2xOMeIUxSuvvDLYF198MepDv3CEEEIIIYQQQgihCQIhhBBCCCGEEELkOMWAV8dkqQav5vizn/0s2Cy/YYll7H2WE9YlB2WpIt9HTALNEhOWB73++uvRazRnYiu+xuT5LLdhCTkAjBkzJtgsl+KVr7PcBxPzPcu/tttuu2CzlLQg02V53tLOn/70p2BzmfPq0w8++GCwWarFsiuW3PHqu7xaO6fqNNXq35wmwDJ8ltfxarLc/rDEjNs3liFzqgLLp/mcLGHmeOE2DSiWa++7777BZunaY489FmyWrPNzchxyXe/cuXOw2de8Aw2nCdWyZDrWfsTgdiWdKsV1nssktoJxLM2NbfYXX69du3bB5vrA/VoliUltn3766WBzygxL77kv5brG5bTTTjuVvBb3L19++WWw33vvvWDPnTu36F45frjvZjk070rAUlu+Nt8ftxH8bCzv5rbgjDPOCPagQYOwtFBXWsHgwYODzf0v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ruu3t7e71mlpaXHNlUol15wknT592jVXy32hKHT5utdfb/yG8gcffJDr+oODg651jh075pqr5Tnl5Zdfds3Nnz/fvWZR9u3bl+v69X68DAwMuOYk6cCBA665/v5+95pFeffdd3Ndf+3ata517rrrLtfckiVLXHOStG3bNtdcR0dH7pmiP1eo1+tLc3Oza66pyf9pqff1ZdOmTe41i7Jz585c1z906NA3X2kMixYtcs3t2rXLNSf5P09OKbnXLErev3dXl++cehdd5Pt6bS2vwd7H6Oeff+5esygffvhhruufOHHCtc6WLVtcc977gSTNnTvXNbdjx47cMxN9XHgHAQAAAAAAYIMAAAAAAACwQQAAAAAAAMQGAQAAAAAAEBsEAAAAAABAbBAAAAAAAACxQQAAAAAAAMQGAQAAAAAAEBsEAAAAAABAbBAAAAAAAACxQQAAAAAAAMQGAQAAAAAAEBsEAAAAAABAkqWUpuSGe3p63Dc8Y8YM19zg4KBrrrm52TUn+Y/1008/zT0zb968kcvlctk861Z3aWpqyjXb39/vWVKlUsk1d+TIEdecJF166aWuuY6OjtwzDz300MjxOHrAAAALWklEQVTlRnTx3ge9PWt5zmhpaXHNeR7b586dG7lcRJf169fnmvV+fNeuXeuamzVrlmtOklavXu2aa29vzz2zcePGkctFdMl7n6r360tnZ6drTpIOHz7smqt+rZis6pZFdDl16lSu2blz53qW1I4dO1xzO3fudM1J0nPPPeea2759e+6Ze+65Z+TydHp9OXv2rGvOe5+XfM9HkrR79+7cM9dcc83I5SK65P14dXV1eZbUvn37XHNHjx51zUnS448/7przfJ582WWXjVwuokv15xGTsXfvXs+SOnbsmGtuyZIlrjlJ6uvrc82tXLky90z1v7OK6NLa2ppr1vs8dvvtt7vm8j7PVst7nxt2yy235J559NFHRy6P7sI7CAAAAAAAABsEAAAAAACADQIAAAAAAKAaNgjM7Aoze8vM9pvZR2b2WJEHBh+6xESXmOgSE11ioktMdImJLjHRJSa6xOI/i4I0JOkfUkp7zWyWpD1m9mZKaX9BxwYfusREl5joEhNdYqJLTHSJiS4x0SUmugTifgdBSulISmlv5fJJSR9LWlDUgcGHLjHRJSa6xESXmOgSE11ioktMdImJLrEUcg4CM1ss6QZJvyni9lAMusREl5joEhNdYqJLTHSJiS4x0SUmujRezRsEZjZT0r9L+vuU0onaDwlFoEtMdImJLjHRJSa6xESXmOgSE11ioksMNW0QmFmzsogdKaX/KOaQUCu6xESXmOgSE11ioktMdImJLjHRJSa6xFHLTzEwSc9L+jiltKm4Q0It6BITXWKiS0x0iYkuMdElJrrERJeY6BJLLe8g+J6kv5L0AzP7beXXnxV0XPCjS0x0iYkuMdElJrrERJeY6BITXWKiSyDuH3OYUvpvSVbgsaAAdImJLjHRJSa6xESXmOgSE11ioktMdImlkJ9iAAAAAAAApjdLKU3JDff09IzccEtLS67Z7NtQ8mtubnbNederZXZgYCD3zOnTp0cul8tl18LVXTZv3pxrdvny5Z4ldfLkSdfcgQMHXHOS1Nvb65pbsmRJ7pmHH3545HIRXbq7u3PNzps3z7Nk7sflMO/jTJK8zzelUin3TF9f38jlIro0NeV7w5X379rT0+Oau/jii11zkjR37lzXXH9/f+6Z6ue+IrrMnDkz16znviSd//ybx9DQkGtOyn+fGzZjxozcMydOfHWy6CK6tLa2em4it6NHj7rmaumydOlS19ypU6dyz5w9e3bkchFd7r///lyzr7zyimdJnTt3zjVX/ffN6/jx46652bNn554p+vOxvI917/NRW1uba877XCT5P9eI8PqS9/OdgwcPepbU5Zdf7pqr5XnM+1jzPLdX3weK6FIul3PN7t+/37OkNm3ynQph7969rjlJOnTokGvOe98bNroL7yAAAAAAAABsEAAAAAAAADYIAAAAAACA2CAAAAAAAABigwAAAAAAAIgNAgAAAAAAIDYIAAAAAACA2CAAAAAAAABigwAAAAAAAIgNAgAAAAAAIDYIAAAAAACA2CAAAAAAAABigwAAAAAAAIgNAgAAAAAAIKmpHouUSqVc1+/r63Ot09ra6pobGhpyzUmSmbnm8n5MpsKiRYtyXf/UqVOudcrlsmvuqquucs1J0q5du1xzXV1d7jWLsm7dulzXTym51vHed71zknTmzBnXnOexvWXLFtda42lqyvd02dvb61qnra3NNed9/pP8z4EXXdT4PeYHH3ww1/W//PJL1zre5z/vepJ08803u+a++OKL3DNbt251rTWeTz75JNf1r7zyStc627Ztc80tXbrUNSdJR44ccc299NJLuWc2bNjgWms83d3dua6/cOFC1zre55RaPje68847XXOe16WNGze61hpP3teX5ubmQtf/Jt7nP0maM2eOay7C60veY1i5cqVrHc9ztiS9//77rjlJGhwcdM3deuut7jWL0t7enuv63tdh733wgQcecM1J/temjo6O3DOrV68e9/81/tEHAAAAAAAajg0CAAAAAADABgEAAAAAAChgg8DMSma2z8xeK+KAUAy6xESXmOgSE11ioktMdImHJjHRJSa6xFHEOwgek/RxAbeDYtElJrrERJeY6BITXWKiSzw0iYkuMdEliJo2CMxsoaQ/l/SzYg4HRaBLTHSJiS4x0SUmusREl3hoEhNdYqJLLLW+g+CfJa2VdK6AY0Fx6BITXWKiS0x0iYkuMdElHprERJeY6BKIe4PAzP5CUndKaU+Bx4Ma0SUmusREl5joEhNdYqJLPDSJiS4x0SWeWt5B8D1Jd5hZp6QXJf3AzH5eyFGhFnSJiS4x0SUmusREl5joEg9NYqJLTHQJxr1BkFL6SUppYUppsaR7Jf0qpbSmsCODC11ioktMdImJLjHRJSa6xEOTmOgSE13iKeKnGAAAAAAAgGmuqYgbSSm9LentIm4LxaFLTHSJiS4x0SUmusREl3hoEhNdYqJLDLyDAAAAAAAAyFJKU3LDPT09Izf81ltv5Zpdv369a83+/n7XXG9vr2tOklasWOGae+2113LPDAwMjFwul8vmWbe6S1NTvjeQtLS0eJZ0O3PmjHt25syZrrnBwcHcM319fSOX6TKx6dzl7NmzuWY7Ojo8S+r48eOuuernh7xKpZJr7oknnsg9MzQ0NHK5iC5m+W7i6aef9iyptrY219xTTz3lmpOk559/3jV33XXX5Z658cYbRy4X0eX666/PNfvZZ595ltRUfQ4zkbzP0cM8z3+dnZ0jl3l9mdi36fXl2Wef9Sypu+++2zXn/dhK0oIFC1xz1a8VnpkiuixfvjzvrGdJ9/3+tttuc81J0pEjR1xzzzzzTO6ZVatWjVwuoktra2uu2TfeeMOzpK699lrXnPc+L0mbN292zc2ePTv3zJo1X53mYXQX3kEAAAAAAADYIAAAAAAAAGwQAAAAAAAAsUEAAAAAAADEBgEAAAAAABAbBAAAAAAAQGwQAAAAAAAAsUEAAAAAAADEBgEAAAAAABAbBAAAAAAAQGwQAAAAAAAAsUEAAAAAAAAkWUppSm64p6dnam4YkqRyuWyeObpMLbrERJeY6BITXWKiS0x0iYkuMdElptFdeAcBAAAAAABggwAAAAAAAEzhtxgAAAAAAIDpg3cQAAAAAAAANggAAAAAAECDNgjM7IdmdsDMDprZk404hqjMrNPMPjSz35rZ+3Vemy7joEtMdImJLvE0skllfbqMgcdKTHSJiS4x0SWmWrrU/RwEZlaS9DtJt0k6LOk9SfellPbX9UCCMrNOSd9NKf1fndelywToEhNdYqJLPI1qUlmbLuPgsRITXWKiS0x0iamWLo14B8EqSQdTSr9PKQ1IelHSjxtwHDgfXWKiS0x0iYkuMdElHprERJeY6BITXaZIIzYIFkg6VPX7w5U/QyZJ+k8z22Nmf13HdekyMbrERJeY6BJPo5pIdJkIj5WY6BITXWKiS0zuLk1TdEDwuyWl1GVml0l608w+SSn9utEHBboERZeY6BIPTWKiS0x0iYkuMdElJneXRryDoEvSFVW/X1j5M0hKKXVV/tst6RfK3j5TD3SZAF1ioktMdImngU0kuoyLx0pMdImJLjHRJaZaujRig+A9ScvMrN3MWiTdK+nVBhxHOGZ2iZnNGr4s6XZJ/1On5ekyDrrERJeY6BJPg5tIdBkTj5WY6BITXWKiS0y1dqn7txiklIbM7BFJv5RUkvRCSumjeh9HUH8k6RdmJmVt/i2l9EY9FqbLhOgSE11ioks8DWsi0WUCPFZioktMdImJLjHV1KXuP+YQAAAAAADE04hvMQAAAAAAAMGwQQAAAAAAANggAAAAAAAAbBAAAAAAAACxQQAAAAAAAMQGAQAAAAAAEBsEAAAAAABA0v8DkQPTi+ALNwMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1152x432 with 20 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(2, 10, figsize=(16, 6))\n",
    "\n",
    "import random \n",
    "\n",
    "for i in range(10):\n",
    "    rand = random.choice(range(x_train.shape[0]))\n",
    "    display_fashion(x_train[rand], y_train_translated[rand], axs[0][i])\n",
    "    display_fashion(x_train_maxpool[rand], y_train_translated[rand], axs[1][i])\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "class ConvolutionTransformer:\n",
    "    \n",
    "    def __init__(self, kernel=[], max_pool=False, max_pool_size=(2,2)):\n",
    "        self.kernel = kernel\n",
    "        self.max_pool = max_pool\n",
    "        self.max_pool_size = max_pool_size\n",
    "        \n",
    "    def fit(self, x):\n",
    "        return x\n",
    "    \n",
    "    def transform(self, x, y=None):\n",
    "        x = convolve(x, self.kernel)\n",
    "        if self.max_pool:\n",
    "            x = maxpool(x, self.max_pool_size)\n",
    "        return x\n",
    "    \n",
    "    def fit_transform(self, x, y=None):\n",
    "        x = self.fit(x)\n",
    "        return self.transform(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shape 784 => 2352\n"
     ]
    }
   ],
   "source": [
    "from sklearn.pipeline import FeatureUnion\n",
    "\n",
    "funion = FeatureUnion(\n",
    "    [\n",
    "        (kernel[0], ConvolutionTransformer(kernel=kernel[1], max_pool=False))\n",
    "        for kernel in kernels\n",
    "    ]\n",
    ")\n",
    "\n",
    "x_train_convs = funion.fit_transform(x_train)\n",
    "x_test_convs = funion.fit_transform(x_test)\n",
    "\n",
    "print(f'Shape {x_train.shape[-1]} => {x_train_convs.shape[-1]}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MLPClassifier(activation='relu', alpha=0.0001, batch_size=50, beta_1=0.9,\n",
       "              beta_2=0.999, early_stopping=True, epsilon=1e-08,\n",
       "              hidden_layer_sizes=(1000, 500, 100), learning_rate='constant',\n",
       "              learning_rate_init=0.01, max_fun=15000, max_iter=80, momentum=0.9,\n",
       "              n_iter_no_change=10, nesterovs_momentum=True, power_t=0.5,\n",
       "              random_state=None, shuffle=True, solver='adam', tol=0.0001,\n",
       "              validation_fraction=0.1, verbose=False, warm_start=False)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neural_network import MLPClassifier\n",
    "\n",
    "mlp = MLPClassifier(\n",
    "    hidden_layer_sizes=(1000, 500, 100),\n",
    "    activation='relu',\n",
    "    learning_rate_init=0.01,\n",
    "    solver='adam',\n",
    "    max_iter=80,\n",
    "    batch_size=50,\n",
    "    early_stopping=True,\n",
    ")\n",
    "\n",
    "mlp.fit(x_train_convs, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test_predict = mlp.predict(x_test_convs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Micro FScore = 0.099\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/sklearn/metrics/_classification.py:1268: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "    #T_ba7b7900_c5cb_11ea_992d_784f43517922row0_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row0_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row0_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row1_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row1_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row1_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row2_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row2_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row2_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row3_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row3_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row3_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row4_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row4_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row4_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row5_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row5_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row5_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row6_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row6_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row6_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row7_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row7_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row7_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row8_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row8_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row8_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row9_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row9_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }    #T_ba7b7900_c5cb_11ea_992d_784f43517922row9_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "        }</style><table id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Precision</th>        <th class=\"col_heading level0 col1\" >Recall</th>        <th class=\"col_heading level0 col2\" >F</th>        <th class=\"col_heading level0 col3\" >Support</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row0\" class=\"row_heading level0 row0\" >Ankle boot</th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row0_col0\" class=\"data row0 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row0_col1\" class=\"data row0 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row0_col2\" class=\"data row0 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row0_col3\" class=\"data row0 col3\" >189</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row1\" class=\"row_heading level0 row1\" >Bag  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row1_col0\" class=\"data row1 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row1_col1\" class=\"data row1 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row1_col2\" class=\"data row1 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row1_col3\" class=\"data row1 col3\" >173</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row2\" class=\"row_heading level0 row2\" >Coat  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row2_col0\" class=\"data row2 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row2_col1\" class=\"data row2 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row2_col2\" class=\"data row2 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row2_col3\" class=\"data row2 col3\" >187</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row3\" class=\"row_heading level0 row3\" >Dress  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row3_col0\" class=\"data row3 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row3_col1\" class=\"data row3 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row3_col2\" class=\"data row3 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row3_col3\" class=\"data row3 col3\" >207</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row4\" class=\"row_heading level0 row4\" >Pullover  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row4_col0\" class=\"data row4 col0\" >0.1</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row4_col1\" class=\"data row4 col1\" >1</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row4_col2\" class=\"data row4 col2\" >0.18</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row4_col3\" class=\"data row4 col3\" >198</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row5\" class=\"row_heading level0 row5\" >Sandal  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row5_col0\" class=\"data row5 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row5_col1\" class=\"data row5 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row5_col2\" class=\"data row5 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row5_col3\" class=\"data row5 col3\" >213</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row6\" class=\"row_heading level0 row6\" >Shirt  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row6_col0\" class=\"data row6 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row6_col1\" class=\"data row6 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row6_col2\" class=\"data row6 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row6_col3\" class=\"data row6 col3\" >177</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row7\" class=\"row_heading level0 row7\" >Sneaker  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row7_col0\" class=\"data row7 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row7_col1\" class=\"data row7 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row7_col2\" class=\"data row7 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row7_col3\" class=\"data row7 col3\" >222</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row8\" class=\"row_heading level0 row8\" >T-shirt/top  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row8_col0\" class=\"data row8 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row8_col1\" class=\"data row8 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row8_col2\" class=\"data row8 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row8_col3\" class=\"data row8 col3\" >211</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922level0_row9\" class=\"row_heading level0 row9\" >Trouser  </th>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row9_col0\" class=\"data row9 col0\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row9_col1\" class=\"data row9 col1\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row9_col2\" class=\"data row9 col2\" >0</td>\n",
       "                        <td id=\"T_ba7b7900_c5cb_11ea_992d_784f43517922row9_col3\" class=\"data row9 col3\" >223</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fbd50be5320>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import precision_recall_fscore_support\n",
    "\n",
    "micro_fscore = precision_recall_fscore_support(y_test, y_test_predict, average='micro')[2]\n",
    "print(f'Micro FScore = {micro_fscore}')\n",
    "\n",
    "p, r, f, s = precision_recall_fscore_support(y_test, y_test_predict)\n",
    "\n",
    "pd.DataFrame(\n",
    "    {\n",
    "        'Precision': p,\n",
    "        'Recall': r,\n",
    "        'F': f,\n",
    "        'Support': s,\n",
    "    },\n",
    "    index=le.classes_.tolist()\n",
    ").round(2).style.bar(subset=['Precision', 'Recall', 'F'], align='mid', color='#CCCCCC')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shape 784 => 147\n"
     ]
    }
   ],
   "source": [
    "from sklearn.pipeline import FeatureUnion\n",
    "\n",
    "funion = FeatureUnion(\n",
    "    [\n",
    "        (kernel[0], ConvolutionTransformer(kernel=kernel[1], max_pool=True, max_pool_size=(4,4)))\n",
    "        for kernel in kernels\n",
    "    ]\n",
    ")\n",
    "\n",
    "x_train_convs = funion.fit_transform(x_train)\n",
    "x_test_convs = funion.fit_transform(x_test)\n",
    "\n",
    "print(f'Shape {x_train.shape[-1]} => {x_train_convs.shape[-1]}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MLPClassifier(activation='relu', alpha=0.0001, batch_size=50, beta_1=0.9,\n",
       "              beta_2=0.999, early_stopping=True, epsilon=1e-08,\n",
       "              hidden_layer_sizes=(500, 300), learning_rate='constant',\n",
       "              learning_rate_init=0.01, max_fun=15000, max_iter=80, momentum=0.9,\n",
       "              n_iter_no_change=10, nesterovs_momentum=True, power_t=0.5,\n",
       "              random_state=None, shuffle=True, solver='adam', tol=0.0001,\n",
       "              validation_fraction=0.1, verbose=False, warm_start=False)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neural_network import MLPClassifier\n",
    "\n",
    "mlp = MLPClassifier(\n",
    "    hidden_layer_sizes=(500, 300),\n",
    "    activation='relu',\n",
    "    learning_rate_init=0.01,\n",
    "    solver='adam',\n",
    "    max_iter=80,\n",
    "    batch_size=50,\n",
    "    early_stopping=True,\n",
    ")\n",
    "\n",
    "mlp.fit(x_train_convs, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test_predict = mlp.predict(x_test_convs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Micro FScore = 0.81\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row0_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 70.7%, transparent 70.7%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row0_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 90.5%, transparent 90.5%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row0_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 81.1%, transparent 81.1%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row1_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row1_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 95.8%, transparent 95.8%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row1_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row2_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 91.9%, transparent 91.9%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row2_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 55.8%, transparent 55.8%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row2_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 70.5%, transparent 70.5%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row3_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 86.9%, transparent 86.9%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row3_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 87.4%, transparent 87.4%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row3_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 88.4%, transparent 88.4%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row4_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 73.7%, transparent 73.7%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row4_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 77.9%, transparent 77.9%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row4_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 77.9%, transparent 77.9%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row5_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row5_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 76.8%, transparent 76.8%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row5_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 88.4%, transparent 88.4%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row6_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 55.6%, transparent 55.6%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row6_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 61.1%, transparent 61.1%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row6_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 58.9%, transparent 58.9%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row7_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 80.8%, transparent 80.8%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row7_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row7_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 91.6%, transparent 91.6%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row8_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 78.8%, transparent 78.8%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row8_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row8_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 90.5%, transparent 90.5%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row9_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 91.9%, transparent 91.9%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row9_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_f5c71078_c5cb_11ea_ae4d_784f43517922row9_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 97.9%, transparent 97.9%);\n",
       "        }</style><table id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Precision</th>        <th class=\"col_heading level0 col1\" >Recall</th>        <th class=\"col_heading level0 col2\" >F</th>        <th class=\"col_heading level0 col3\" >Support</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row0\" class=\"row_heading level0 row0\" >Ankle boot</th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row0_col0\" class=\"data row0 col0\" >0.7</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row0_col1\" class=\"data row0 col1\" >0.86</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row0_col2\" class=\"data row0 col2\" >0.77</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row0_col3\" class=\"data row0 col3\" >189</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row1\" class=\"row_heading level0 row1\" >Bag  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row1_col0\" class=\"data row1 col0\" >0.99</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row1_col1\" class=\"data row1 col1\" >0.91</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row1_col2\" class=\"data row1 col2\" >0.95</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row1_col3\" class=\"data row1 col3\" >173</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row2\" class=\"row_heading level0 row2\" >Coat  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row2_col0\" class=\"data row2 col0\" >0.91</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row2_col1\" class=\"data row2 col1\" >0.53</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row2_col2\" class=\"data row2 col2\" >0.67</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row2_col3\" class=\"data row2 col3\" >187</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row3\" class=\"row_heading level0 row3\" >Dress  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row3_col0\" class=\"data row3 col0\" >0.86</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row3_col1\" class=\"data row3 col1\" >0.83</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row3_col2\" class=\"data row3 col2\" >0.84</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row3_col3\" class=\"data row3 col3\" >207</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row4\" class=\"row_heading level0 row4\" >Pullover  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row4_col0\" class=\"data row4 col0\" >0.73</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row4_col1\" class=\"data row4 col1\" >0.74</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row4_col2\" class=\"data row4 col2\" >0.74</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row4_col3\" class=\"data row4 col3\" >198</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row5\" class=\"row_heading level0 row5\" >Sandal  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row5_col0\" class=\"data row5 col0\" >0.99</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row5_col1\" class=\"data row5 col1\" >0.73</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row5_col2\" class=\"data row5 col2\" >0.84</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row5_col3\" class=\"data row5 col3\" >213</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row6\" class=\"row_heading level0 row6\" >Shirt  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row6_col0\" class=\"data row6 col0\" >0.55</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row6_col1\" class=\"data row6 col1\" >0.58</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row6_col2\" class=\"data row6 col2\" >0.56</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row6_col3\" class=\"data row6 col3\" >177</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row7\" class=\"row_heading level0 row7\" >Sneaker  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row7_col0\" class=\"data row7 col0\" >0.8</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row7_col1\" class=\"data row7 col1\" >0.95</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row7_col2\" class=\"data row7 col2\" >0.87</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row7_col3\" class=\"data row7 col3\" >222</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row8\" class=\"row_heading level0 row8\" >T-shirt/top  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row8_col0\" class=\"data row8 col0\" >0.78</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row8_col1\" class=\"data row8 col1\" >0.95</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row8_col2\" class=\"data row8 col2\" >0.86</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row8_col3\" class=\"data row8 col3\" >211</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922level0_row9\" class=\"row_heading level0 row9\" >Trouser  </th>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row9_col0\" class=\"data row9 col0\" >0.91</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row9_col1\" class=\"data row9 col1\" >0.95</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row9_col2\" class=\"data row9 col2\" >0.93</td>\n",
       "                        <td id=\"T_f5c71078_c5cb_11ea_ae4d_784f43517922row9_col3\" class=\"data row9 col3\" >223</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fbcc1d20208>"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import precision_recall_fscore_support\n",
    "\n",
    "micro_fscore = precision_recall_fscore_support(y_test, y_test_predict, average='micro')[2]\n",
    "print(f'Micro FScore = {micro_fscore}')\n",
    "\n",
    "p, r, f, s = precision_recall_fscore_support(y_test, y_test_predict)\n",
    "\n",
    "pd.DataFrame(\n",
    "    {\n",
    "        'Precision': p,\n",
    "        'Recall': r,\n",
    "        'F': f,\n",
    "        'Support': s,\n",
    "    },\n",
    "    index=le.classes_.tolist()\n",
    ").round(2).style.bar(subset=['Precision', 'Recall', 'F'], align='mid', color='#CCCCCC')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 4 folds for each of 72 candidates, totalling 288 fits\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done  33 tasks      | elapsed:  1.6min\n",
      "[Parallel(n_jobs=-1)]: Done 154 tasks      | elapsed: 13.1min\n",
      "[Parallel(n_jobs=-1)]: Done 288 out of 288 | elapsed: 29.4min finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=4, error_score=nan,\n",
       "             estimator=MLPClassifier(activation='relu', alpha=0.0001,\n",
       "                                     batch_size=50, beta_1=0.9, beta_2=0.999,\n",
       "                                     early_stopping=True, epsilon=1e-08,\n",
       "                                     hidden_layer_sizes=(100,),\n",
       "                                     learning_rate='constant',\n",
       "                                     learning_rate_init=0.001, max_fun=15000,\n",
       "                                     max_iter=50, momentum=0.9,\n",
       "                                     n_iter_no_change=10,\n",
       "                                     nesterovs_momentum=True, power_t=0.5,\n",
       "                                     random_state=None,...\n",
       "                                     validation_fraction=0.1, verbose=False,\n",
       "                                     warm_start=False),\n",
       "             iid='deprecated', n_jobs=-1,\n",
       "             param_grid={'activation': ['logistic', 'tanh', 'relu'],\n",
       "                         'hidden_layer_sizes': [(50,), (50, 50), (100, 50),\n",
       "                                                (100, 100), (500, 100),\n",
       "                                                (500, 100, 100)],\n",
       "                         'learning_rate_init': [0.01, 0.001],\n",
       "                         'solver': ['sgd', 'adam']},\n",
       "             pre_dispatch='2*n_jobs', refit=True, return_train_score=False,\n",
       "             scoring=None, verbose=2)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "param_grid = {\n",
    "    'hidden_layer_sizes': [(50,), (50, 50), (100, 50), (100, 100), (500, 100), (500, 100, 100)],\n",
    "    'activation': ['logistic', 'tanh', 'relu'],\n",
    "    'learning_rate_init': [0.01, 0.001],\n",
    "    'solver': ['sgd', 'adam'],\n",
    "}\n",
    "\n",
    "gs = GridSearchCV(\n",
    "    estimator=MLPClassifier(\n",
    "        max_iter=50,\n",
    "        batch_size=50,\n",
    "        early_stopping=True,\n",
    "    ), \n",
    "    param_grid=param_grid,\n",
    "    cv=4,\n",
    "    verbose=2,\n",
    "    n_jobs=-1\n",
    ")\n",
    " \n",
    "gs.fit(x_train_convs, y_train)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'activation': 'logistic',\n",
       " 'hidden_layer_sizes': (100, 100),\n",
       " 'learning_rate_init': 0.01,\n",
       " 'solver': 'adam'}"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gs.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test_predict = gs.predict(x_test_convs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Micro FScore = 0.815\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "    #T_15e15434_c5d0_11ea_9111_784f43517922row0_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 85.7%, transparent 85.7%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row0_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 76.8%, transparent 76.8%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row0_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 82.1%, transparent 82.1%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row1_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row1_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 97.9%, transparent 97.9%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row1_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row2_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 88.8%, transparent 88.8%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row2_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 57.9%, transparent 57.9%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row2_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 70.5%, transparent 70.5%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row3_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 90.8%, transparent 90.8%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row3_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 80.0%, transparent 80.0%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row3_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 86.3%, transparent 86.3%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row4_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 75.5%, transparent 75.5%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row4_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 76.8%, transparent 76.8%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row4_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 76.8%, transparent 76.8%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row5_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 86.7%, transparent 86.7%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row5_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 100.0%, transparent 100.0%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row5_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 94.7%, transparent 94.7%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row6_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 48.0%, transparent 48.0%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row6_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 76.8%, transparent 76.8%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row6_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 61.1%, transparent 61.1%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row7_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 93.9%, transparent 93.9%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row7_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 90.5%, transparent 90.5%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row7_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 93.7%, transparent 93.7%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row8_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 84.7%, transparent 84.7%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row8_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 97.9%, transparent 97.9%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row8_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 92.6%, transparent 92.6%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row9_col0 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 94.9%, transparent 94.9%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row9_col1 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 96.8%, transparent 96.8%);\n",
       "        }    #T_15e15434_c5d0_11ea_9111_784f43517922row9_col2 {\n",
       "            width:  10em;\n",
       "             height:  80%;\n",
       "            background:  linear-gradient(90deg,#CCCCCC 96.8%, transparent 96.8%);\n",
       "        }</style><table id=\"T_15e15434_c5d0_11ea_9111_784f43517922\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Precision</th>        <th class=\"col_heading level0 col1\" >Recall</th>        <th class=\"col_heading level0 col2\" >F</th>        <th class=\"col_heading level0 col3\" >Support</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row0\" class=\"row_heading level0 row0\" >Ankle boot</th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row0_col0\" class=\"data row0 col0\" >0.84</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row0_col1\" class=\"data row0 col1\" >0.73</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row0_col2\" class=\"data row0 col2\" >0.78</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row0_col3\" class=\"data row0 col3\" >189</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row1\" class=\"row_heading level0 row1\" >Bag  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row1_col0\" class=\"data row1 col0\" >0.98</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row1_col1\" class=\"data row1 col1\" >0.93</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row1_col2\" class=\"data row1 col2\" >0.95</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row1_col3\" class=\"data row1 col3\" >173</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row2\" class=\"row_heading level0 row2\" >Coat  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row2_col0\" class=\"data row2 col0\" >0.87</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row2_col1\" class=\"data row2 col1\" >0.55</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row2_col2\" class=\"data row2 col2\" >0.67</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row2_col3\" class=\"data row2 col3\" >187</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row3\" class=\"row_heading level0 row3\" >Dress  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row3_col0\" class=\"data row3 col0\" >0.89</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row3_col1\" class=\"data row3 col1\" >0.76</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row3_col2\" class=\"data row3 col2\" >0.82</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row3_col3\" class=\"data row3 col3\" >207</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row4\" class=\"row_heading level0 row4\" >Pullover  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row4_col0\" class=\"data row4 col0\" >0.74</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row4_col1\" class=\"data row4 col1\" >0.73</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row4_col2\" class=\"data row4 col2\" >0.73</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row4_col3\" class=\"data row4 col3\" >198</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row5\" class=\"row_heading level0 row5\" >Sandal  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row5_col0\" class=\"data row5 col0\" >0.85</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row5_col1\" class=\"data row5 col1\" >0.95</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row5_col2\" class=\"data row5 col2\" >0.9</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row5_col3\" class=\"data row5 col3\" >213</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row6\" class=\"row_heading level0 row6\" >Shirt  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row6_col0\" class=\"data row6 col0\" >0.47</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row6_col1\" class=\"data row6 col1\" >0.73</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row6_col2\" class=\"data row6 col2\" >0.58</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row6_col3\" class=\"data row6 col3\" >177</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row7\" class=\"row_heading level0 row7\" >Sneaker  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row7_col0\" class=\"data row7 col0\" >0.92</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row7_col1\" class=\"data row7 col1\" >0.86</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row7_col2\" class=\"data row7 col2\" >0.89</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row7_col3\" class=\"data row7 col3\" >222</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row8\" class=\"row_heading level0 row8\" >T-shirt/top  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row8_col0\" class=\"data row8 col0\" >0.83</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row8_col1\" class=\"data row8 col1\" >0.93</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row8_col2\" class=\"data row8 col2\" >0.88</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row8_col3\" class=\"data row8 col3\" >211</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_15e15434_c5d0_11ea_9111_784f43517922level0_row9\" class=\"row_heading level0 row9\" >Trouser  </th>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row9_col0\" class=\"data row9 col0\" >0.93</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row9_col1\" class=\"data row9 col1\" >0.92</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row9_col2\" class=\"data row9 col2\" >0.92</td>\n",
       "                        <td id=\"T_15e15434_c5d0_11ea_9111_784f43517922row9_col3\" class=\"data row9 col3\" >223</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fbcc1f6beb8>"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import precision_recall_fscore_support\n",
    "\n",
    "micro_fscore = precision_recall_fscore_support(y_test, y_test_predict, average='micro')[2]\n",
    "print(f'Micro FScore = {micro_fscore}')\n",
    "\n",
    "p, r, f, s = precision_recall_fscore_support(y_test, y_test_predict)\n",
    "\n",
    "pd.DataFrame(\n",
    "    {\n",
    "        'Precision': p,\n",
    "        'Recall': r,\n",
    "        'F': f,\n",
    "        'Support': s,\n",
    "    },\n",
    "    index =le.classes_.tolist()\n",
    ").round(2).style.bar(subset=['Precision', 'Recall', 'F'], align='mid', color='#CCCCCC')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
